package server;

import java.net.MalformedURLException;

import javax.jms.JMSException;

import org.exolab.jms.administration.AdminConnectionFactory;
import org.exolab.jms.administration.JmsAdminServerIfc;

import config.Log;
import core.Util;

public class ADServer {
	
	public static void main(String[] args) {
		if (args.length != 2){
			System.out.println("Use: java -jar ADServer.jar <endereco>:<porta> <canal servidor>");
		
		} else {
			try {
				//adiciona o servidor em destinations
				JmsAdminServerIfc admin = AdminConnectionFactory.create("tcp://"+ args[0] + "/");
				admin.addDestination(args[1], true);
				
				//configura log
				Log.getInstance(ADServer.class).configure(args[1]);
				Log.getInstance(ADServer.class).getLogger().info("Iniciando servidor: " + args[1] + " - " + Util.getTime());
				
				new Middleware(args[0], args[1]);
				Thread.sleep(2000);
				
			} catch (InterruptedException e) {
				System.out.println("Ocorreu um erro ao manipular Threads.");
				e.printStackTrace();
			
			} catch (MalformedURLException e) {
				System.out.println("A URL informada para conexão com o provedor JMS está incorreta.");
				e.printStackTrace();

			} catch (JMSException e) {
				System.out.println("Ocorreu um erro ao utilizar JMS.");
				e.printStackTrace();
				
			} catch (Exception e) {
				System.out.println("Ocorreu um erro ao configurar o arquivo de Log.");
				e.printStackTrace();
				
			}
		}
	}

}
